package com.back.service;

import com.back.entity.FavoriteJob;
import com.back.vo.JobListVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

/**
 * <p>
 * 收藏职位服务接口
 * </p>
 *
 * @author liyang
 * @since 2025-04-26
 */
public interface IFavoriteJobService extends IService<FavoriteJob> {

    /**
     * 收藏职位
     * @param jobId 职位ID
     * @param userId 用户ID
     * @return 收藏结果
     */
    FavoriteJob addFavorite(Long jobId, Long userId);
    
    /**
     * 取消收藏职位
     * @param jobId 职位ID
     * @param userId 用户ID
     * @return 取消结果
     */
    boolean removeFavorite(Long jobId, Long userId);
    
    /**
     * 检查职位是否已收藏
     * @param jobId 职位ID
     * @param userId 用户ID
     * @return 是否已收藏
     */
    boolean checkFavorite(Long jobId, Long userId);
    
    /**
     * 获取用户收藏的职位列表
     * @param userId 用户ID
     * @param page 页码
     * @param pageSize 每页数量
     * @return 收藏职位列表
     */
    IPage<JobListVO> getUserFavorites(Long userId, Integer page, Integer pageSize);
}
